package org.ru.mse10.cvis.entity.cv.custom.provider;

import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;

import org.ru.mse10.cvis.entity.misc.Identity;
import org.ru.mse10.cvis.entity.util.CustomFieldValueProviderType;

/**
 * The Class CustomFieldValueProvider.
 */
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class CustomFieldValueProvider extends Identity {

	/** The identifier. */
	private String identifier;

	/** The display name. */
	private String displayName;

	/** The description. */
	private String description;

	/**
	 * Gets the identifier.
	 * 
	 * @return the identifier
	 */
	public String getIdentifier() {
		return identifier;
	}

	/**
	 * Sets the identifier.
	 * 
	 * @param identifier
	 *            the new identifier
	 */
	public void setIdentifier(String identifier) {
		this.identifier = identifier;
	}

	/**
	 * Gets the display name.
	 * 
	 * @return the display name
	 */
	public String getDisplayName() {
		return displayName;
	}

	/**
	 * Sets the display name.
	 * 
	 * @param displayName
	 *            the new display name
	 */
	public void setDisplayName(String displayName) {
		this.displayName = displayName;
	}

	/**
	 * Gets the description.
	 * 
	 * @return the description
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * Sets the description.
	 * 
	 * @param description
	 *            the new description
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * Type.
	 * 
	 * @return the custom field value provider type
	 */
	public abstract CustomFieldValueProviderType type();
}
